package com.ys.day28.udp通信方式;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * 描述: UDP 的发送方
 *
 * @author CodeYang
 * @version 2021/1/9 19:21
 */
public class UdpSendData {

    public static void main(String[] args) {
        try(
                // 发送方不要注册服务
                DatagramSocket socket = new DatagramSocket();
             )
         {
             String msg = "info 123456 data end";
             byte[] data = msg.getBytes();
             // 定义数据包，封装要发送的数据，接收方的地址和端口
             /**
              * 参数1：要发送的数据，此时数据编码为字节数组
              * 参数2：偏移量：0表示从字节数组的起始处开始发送
              * 参数3：发送数据的有效字节长度
              * 参数4：使用InetAddress对象指定接收方的地址
              * 参数5：接收方的端口号
              */
             DatagramPacket datagramPacket = new DatagramPacket(data,data.length, InetAddress.getByName("localhost"),48092);
             /**
              * UDP以包为传输介质，所以参数是DatagramPacket，此时所有要发送的数据信息都在DatagramPacket里面
              */
             socket.send(datagramPacket);

         }catch (Exception e){
            System.out.println("发送失败");
            e.printStackTrace();
        }
    }
}
